import numpy as np
import matplotlib.pyplot as plt


#设置离散点
list_x=[1.0,2.0,3.0,4.0,5.0]
list_y=[1.0,3.0,2.0,3.0,5.1]

x=np.array(list_x)
y=np.array(list_y)

#离散的点绘制
plt.scatter(x,y,color='r')
plt.axis([0,7,0,7])
plt.show()
#假设模型为y=ax+b

fenzi=0.0
fenmu=0.0
#x和y的平均值
x_mean=x.mean()
y_mean=y.mean()

#循环求解fenzi 和 fenmu 变量
for x_i,y_i in zip(x,y):
    fenzi+=(x_i-x_mean)*(y_i-y_mean)
    fenmu+=(x_i - x_mean)**2

#系数a b 分别为:
a=fenzi/fenmu
b=y_mean-a*x_mean
print("参数a和b:",a,b)

#系数a b分别为：
a=fenzi/fenmu
b=y_mean-a*x_mean
print("参数a和b：",a,b)
#函数模型为
y_predict=a*x+b
#绘制直线

plt.plot(x,y_predict,color='g')
plt.show()

x_1=7
print("预测结果是：",a*x_1+b)